home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / blankery / bserverdir / sources / server / askfiles.c next >
C/C++ Source or Header  |  1994-11-26  |  1KB  |  65 lines

  1.  
  2. #include <utility/tagitem.h>
  3. #include <string.h>
  4.  
  5. #include <clib/asl_protos.h>
  6. #include <clib/dos_protos.h>
  7.  
  8. char drawername[77];
  9. char filename[33];
  10.  
  11. struct TagItem sourcetags[] = {
  12. { ASLFR_TitleText, (ULONG)&"Select clients" },
  13. { ASLFR_InitialDrawer, (ULONG)drawername },
  14. { ASLFR_InitialFile, (ULONG)filename },
  15. { ASLFR_Flags1, FRF_DOMULTISELECT },
  16. { ASLFR_InitialHeight, 210L },
  17. { ASLFR_RejectIcons, TRUE },
  18. { TAG_END, NULL } };
  19.  
  20. extern void AddClient( char * );
  21. extern void DetachGadgets( void );
  22. extern void AttachGadgets( void );
  23.  
  24. void AskFiles( void )
  25. {
  26. struct FileRequester *request;
  27. UWORD x;
  28. struct WBArg *asl_args;
  29.  
  30. if ( request = (struct FileRequester *)AllocAslRequest( ASL_FileRequest, sourcetags ) )
  31.     {
  32.     strcpy( filename, FilePart(filename) );
  33.     if ( AslRequest( request, sourcetags ) )
  34.         {
  35.         DetachGadgets();
  36.         strcpy( filename, request->fr_Drawer );
  37.         if ( filename[0] )
  38.             {
  39.             strcpy( drawername, filename );
  40.             if ( filename[ strlen(filename)-1 ] != ':' && filename[ strlen(filename)-1 ] != '/' )
  41.                 strcat( filename, "/" );
  42.             }
  43.  
  44.         if ( request->fr_NumArgs )
  45.             {
  46.             asl_args = request->fr_ArgList;
  47.             for ( x = 0; x < request->fr_NumArgs; x++ )
  48.                 {
  49.                 *(FilePart(filename)) = 0;
  50.                 strcat( FilePart(filename), asl_args[x].wa_Name );
  51.                 AddClient( filename );
  52.                 }
  53.             }
  54.         else
  55.             {
  56.             strcat( FilePart(filename), FilePart(request->fr_File) );
  57.             AddClient( filename );
  58.             }
  59.         AttachGadgets();
  60.         }
  61.     FreeAslRequest( request );
  62.     }
  63. }
  64.  
  65.